﻿//////////////////////elaborado por: Susana Taquichiri////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Boa.AIT.Negocios.Servicios;
using Boa.AIT.Negocios;
using Boa.AIT.AccesoDatos.Entidades;

namespace Boa.AIT.Web.Controllers
{
    public class MovilController : Controller
    {
        //
        // GET: /Movil/

        public ActionResult Index()
        {
            return View();
        }

        public ActionResult VerEquipo(string guid)
        {
            if (Boa.AIT.Negocios.Session.Global.UserInfo() == null)
            {
                IAIT_EquipoITNegociosServicio servicio = new AIT_EquipoITNegocios();
                AIT_EquipoIT equipo = servicio.ObtenerPorGuid(guid);

                ViewBag.Guid = guid;

                return View(equipo);
            }
            else
            {
                return RedirectToAction("VerEquipoCompleto", new { guid = guid });
            }            
        }

        public ActionResult VerEquipoCompleto(string guid)
        {
            if (AIT.Negocios.Session.Global.UserInfo() == null)
                return RedirectToAction("VerEquipo", new { guid = guid });


            IAIT_EquipoITNegociosServicio servicio = new AIT_EquipoITNegocios();
            AIT_EquipoIT equipo = servicio.ObtenerPorGuid(guid);

            IAIT_MantenimientoPreventivoNegociosServicio mantServicio = new AIT_MantenimientoPreventivoNegocios();
            List<AIT_MantenimientoPreventivo> resultado = mantServicio.GetPorEquipoId(equipo.Id);

            List<AIT_MantenimientoPreventivo> resParaHoy = resultado.Where(p => p.FechaProgramada.Day == DateTime.Now.Day && p.FechaProgramada.Month == DateTime.Now.Month && p.FechaProgramada.Year == DateTime.Now.Year &&  !p.Realizado).ToList();
            List<AIT_MantenimientoPreventivo> notificaciones = resultado.Where(p => p.FechaNotificacion.Day == DateTime.Now.Day && p.FechaNotificacion.Month == DateTime.Now.Month && p.FechaNotificacion.Year == DateTime.Now.Year).OrderBy(p=>p.FechaProgramada).ToList();
            
            
            List<AIT_MantenimientoPreventivo> resumen = resultado.Where(p => !resParaHoy.Contains(p) && !notificaciones.Contains(p)).OrderBy(p=> p.FechaProgramada).ToList();
            

            ViewBag.EquipoIT = equipo;
            ViewBag.Guid = guid;
            ViewBag.Notificaciones = notificaciones;
            ViewBag.ParaHoy = resParaHoy;

            return View(resumen);
        }


        public ActionResult ConrifmarAtencion(string guid, int Mant)
        {
            IAIT_EquipoITNegociosServicio servicio = new AIT_EquipoITNegocios();
            AIT_EquipoIT equipo = servicio.ObtenerPorGuid(guid);
            ViewBag.Mant = Mant;
            return View(equipo);
        }

        public ActionResult RealizarMantenimiento(string guid, int Mant)
        {
            IAIT_EquipoITNegociosServicio servicio = new AIT_EquipoITNegocios();
            AIT_EquipoIT equipo = servicio.ObtenerPorGuid(guid);

            IAIT_MantenimientoPreventivoNegociosServicio mantServicio = new AIT_MantenimientoPreventivoNegocios();
            mantServicio.RealizarMantenimiento(equipo, Mant);

            return RedirectToAction("VerEquipoCompleto", new { guid = guid });
        }


    }
}
